home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr50 / idpds10.zip / IDOOR.DOC < prev    next >
Text File  |  1993-04-09  |  46KB  |  1,396 lines

  1.       
  2.       
  3.       
  4.       
  5.       
  6.       
  7.       
  8.       
  9.       
  10.       
  11.       
  12.       
  13.       
  14.       
  15.       
  16.       
  17.       
  18.                   
  19.                   
  20.                   
  21.                   
  22.                   
  23.                   
  24.                   INSTA-DOOR(TM)
  25.       
  26.        A door development library for QUICKBASIC, BASIC PDS, and
  27.                VISUAL BASIC for DOS
  28.       
  29.                 Version 1.0
  30.       
  31.          (C) Copyright 1993  M&J Alliance Software  
  32.                 ALL RIGHTS RESERVED
  33.       
  34.                   4/10/93
  35.       
  36.       
  37.        For the latest version of this program, call our support 
  38.        BBS: (602) 937-3796 (AZ).  Or write to:
  39.       
  40.                 M&J Alliance Software
  41.                 P.O. Box 86934
  42.                 Phoenix, AZ  85080-6934
  43.       
  44.  
  45.       INSTA-DOOR v1.0                        TABLE OF CONTENTS   i
  46.       
  47.       TABLE OF CONTENTS
  48.       
  49.        WARRANTY ................................................ 1
  50.        TRADEMARK ............................................... 1
  51.        REGISTRATION POLICY ..................................... 2
  52.        SYSTEM REQUIREMENTS ..................................... 2
  53.        PURPOSE ................................................. 3
  54.        FILES INCLUDED IN ARCHIVE ............................... 4
  55.        LICENSE ................................................. 4
  56.        USING INSTA-DOOR ........................................ 5
  57.        SETTING UP THE DOOR WITH THE BBS ........................ 7
  58.        INSTA-DOOR ROUTINES 
  59.          ANSIMusic ............................................. 8
  60.          Backspace ............................................. 8
  61.          ChangeColor ........................................... 9
  62.          ChangePos ............................................. 9
  63.          CheckTermulation ...................................... 9
  64.          ClearWindow .......................................... 10
  65.          ClearLine ............................................ 10
  66.          CursorDown ........................................... 10
  67.          CursorLeft ........................................... 10
  68.          CursorRight .......................................... 11
  69.          CursorUp ............................................. 11
  70.          DialogBox ............................................ 12
  71.          EnterKey ............................................. 14
  72.          Exist ................................................ 14
  73.          Exitdoor ............................................. 14
  74.          GetANSIScreen ........................................ 15
  75.          Initialize ........................................... 15
  76.          IsAlpha .............................................. 15
  77.          HitKey ............................................... 16
  78.          InputData ............................................ 16
  79.          LineFeed ............................................. 17
  80.          MakeWindow ........................................... 17
  81.          Max .................................................. 18
  82.          Min .................................................. 18
  83.          OpenAppend ........................................... 18
  84.          OpenBinary ........................................... 19
  85.          OpenInput ............................................ 19
  86.       
  87.  
  88.       INSTA-DOOR v1.0                        TABLE OF CONTENTS  ii
  89.          
  90.          OpenOutput ........................................... 20
  91.          PutANSIScreen ........................................ 20
  92.          RestoreCursor ........................................ 21
  93.          RInstr ............................................... 22
  94.          SaveCursor ........................................... 22
  95.          SendANSI ............................................. 23
  96.          SendAVATAR ........................................... 23
  97.          SendCode ............................................. 23
  98.          SendPlainLine ........................................ 24
  99.          SendText ............................................. 24
  100.          SetArraySize ......................................... 25
  101.          SetBlink ............................................. 25
  102.          SortSt ............................................... 25
  103.          Timer2 ............................................... 26
  104.        INSTA-DOOR COMMON SHARED VARIABLES ..................... 27  
  105.        APPENDIX A - COLOR CODES ............................... 28
  106.        APPENDIX B - DOOR FILE FORMATS ......................... 29
  107.        APPENDIX C - SPLIT SCREEN CHAT AND STATUS BAR .......... 34
  108.        
  109.  
  110.       INSTA-DOOR v1.0                                 WARRANTY   1
  111.       
  112.       WARRANTY
  113.       
  114.        This program is provided "AS IS" without any  warranty,
  115.        expressed or implied.  Any person using this software
  116.        assumes the risk involved in doing so.  Also, no
  117.        warranty exists for the fitness of programs developed
  118.        with this software.  Finally, the author cannot assume
  119.        responsibility for any hardware damage caused by the
  120.        proper or improper use of this program.
  121.       
  122.       
  123.       TRADEMARK
  124.       
  125.        INSTA-DOOR(TM) is a trademark of M&J Alliance Software.
  126.        
  127.       
  128.  
  129.       INSTA-DOOR v1.0                       REGISTRATION POLICY  2
  130.       
  131.       REGISTRATION POLICY
  132.       
  133.        INSTA-DOOR is a SHAREWARE product.  This means that
  134.        this program may be evaluated for a brief trial period,
  135.        in this case 15 DAYS.  After this time expires, YOU 
  136.        MUST REGISTER THIS SOFTWARE if you plan to continue
  137.        using it (for either commercial or non-commercial 
  138.        purposes).  The REGISTRATION FEE is $20.00 U.S.  
  139.        See ORDER.FRM for details.
  140.       
  141.       
  142.       SYSTEM REQUIREMENTS
  143.       
  144.        INSTA-DOOR requires QuickBasic v4.0 and up, BASIC
  145.        PDS v7.1, or VISUAL BASIC for DOS v1.0.  DOS 3.0
  146.        or higher is  required for file sharing
  147.        (multi-node operation).
  148.        
  149.  
  150.       INSTA-DOOR v1.0                                   PURPOSE  3
  151.       
  152.       PURPOSE
  153.       
  154.        INSTA-DOOR is a collection of routines intended to aid
  155.        the BASIC programmer in the development of BBS DOOR 
  156.        programs.  Many programming details are taken care of 
  157.        automatically by INSTA-DOOR, such as Communications 
  158.        setup, BBS support, etc.  Features of this library include:
  159.       
  160.         -Support for many BBS FORMATS:  DORINFOx.DEF 
  161.          (RBBS, QBBS), DOOR.SYS, CALLINFO.BBS (Wildcat!), 
  162.          CHAIN.TXT (WWIV), and PCBOARD.SYS (PCBoard 14.x)
  163.         -Interrupt driven I/O with support for COM 1-4.  Baud 
  164.          rates up to 115,200 possible.    
  165.         -An ANSI/AVATAR 0,0+ driver built in!  No need for
  166.          ANSI.SYS
  167.         -Split screen chat built into the door (done 
  168.          automatically, see APPENDIX C for directions on
  169.          how to operate)
  170.         -Status bar (describing current status of user) on
  171.          the bottom (taken care of automatically, see
  172.          APPENDIX C for directions on how to change user 
  173.          settings)
  174.         -A Dialog Box that works with arrow keys (or numeric 
  175.          keypad).
  176.         -Automatic REMOTE TERMINAL detection
  177.         -ANSI Music
  178.         -Complete control of the cursor with commands like
  179.          'Cursor Left', 'ChangePos', etc.
  180.         -Getting and Restoring areas of the screen, both
  181.          LOCALLY and REMOTELY!
  182.         -Advanced inputting routine
  183.         -COLOR CODES to change colors 'on the fly' (See
  184.          APPENDIX A)
  185.       
  186.  
  187.       INSTA-DOOR v1.0                                    FILES   4
  188.       
  189.       FILES
  190.       
  191.        These files can be found in the IDOOR archive:
  192.       
  193.         IDOORQB.LIB (IDOORPDS.LIB, IDOORVB.LIB)   Library file 
  194.         IDOORQB.QLB (IDOORPDS.QLB, IDOORVB.QLB)   Library file
  195.         IDOOR.BAS          A DOOR demo      
  196.         IDOOR.EXE          The demo compiled (PKLITED)
  197.         GENINFO.ANS        An ANSI file to use with the demo
  198.         GENINFO.AVT        An AVATAR file to use with the demo
  199.         IDOOR.CFG          Configuration file to use with demo
  200.         IDOOR.DOC          Documentation file (this file)
  201.         ORDER.FRM          Details about program REGISTRATION 
  202.         IDOORDEM.DOC       How to run the IDOOR demo
  203.         IDOOR.BI           Include file
  204.         FILE_ID.DIZ        Description file
  205.  
  206.        
  207.       LICENSE
  208.       
  209.        INSTA-DOOR may be freely distributed via Bulletin
  210.        Board Networks or other Shareware vendors provided 
  211.        that all above files are included and not altered in any 
  212.        way.
  213.       
  214.       
  215.  
  216.       INSTA-DOOR v1.0                         USING INSTA-DOOR   5
  217.       
  218.       USING INSTA-DOOR
  219.       
  220.        Both the .LIB and .QLB forms of the library have been
  221.        included, however if you wish to make the .QLB library
  222.        from the .LIB library (the reverse is not possible), use
  223.        the LINK program that comes with the compiler.  Type:
  224.       
  225.            LINK /Q IDOORQB.LIB,,NUL,BQLB45;     for QB users
  226.            LINK /Q IDOORPDS.LIB,,NUL,QBXQLB;    for PDS users
  227.            LINK /Q IDOORVB.LIB,,NUL,VBDOSQLB;   for VBDOS users
  228.       
  229.        You must load the .QLB library into memory when running 
  230.        the compiler in order to program in the environment.  Do it
  231.        like this:
  232.       
  233.         QB (programname) /L IDOORQB        for QB users
  234.         QBX (programname) /L IDOORPDS      for PDS users
  235.         VBDOS (programname) /L IDOORVB     for VBDOS users
  236.       
  237.        You must INCLUDE the IDOOR.BI file in your program, 
  238.        preferably at the beginning of the code.  This file 
  239.        contains declarations for all SUBs and FUNCTIONs, as well 
  240.        as some global variables used by the library.  This is 
  241.        done as follows:
  242.       
  243.         REM $INCLUDE: 'IDOOR.BI'
  244.       
  245.        Once the IDOOR.BI file has been included, it is not necessary
  246.        to use the CALL keyword when using a INSTA-DOOR routine,
  247.        we recommend that you do not do so.  To use an INSTA-DOOR 
  248.        routine in your program, simply use the name of the 
  249.        routine, followed by appropriate arguments if needed.  
  250.        Here are some examples:
  251.       
  252.         ChangePos 12, 37
  253.         k$ = Hitkey$
  254.         Initialize
  255.         ChangeColor foreground%, background%
  256.                                          
  257.        If you wish to compile your DOOR program from the command
  258.        line, do it like this:
  259.       
  260.         BC programname /O;            for QB, VBDOS users
  261.         BC programname /O /FS;        for PDS users
  262.       
  263.        If you are using PDS, you MUST compile your program using
  264.        FAR STRINGS (/FS switch).  VBDOS uses far strings by
  265.        default.  Of course, you may added any additional switches
  266.        that are necessary to compile your program.
  267.       
  268.  
  269.       INSTA-DOOR v1.0                         USING INSTA-DOOR   6
  270.        
  271.        You must then use LINK to get your program into the final
  272.        .EXE form:
  273.       
  274.           LINK /EX /NOE programname,,NUL,IDOORQB;   for QB users
  275.           LINK /EX /NOE programname,,NUL,IDOORPDS;  for PDS users    
  276.           LINK /EX /NOE programname,,NUL,IDOORVB;   for VB users
  277.       
  278.        Again, you may use any switches that are necessary for
  279.        your program.
  280.       
  281.       
  282.  
  283.       INSTA-DOOR v1.0         SETTING UP THE DOOR WITH THE BBS   7
  284.       
  285.       SETTING UP THE DOOR WITH THE BBS
  286.       
  287.        The SYSOP of the BBS customizes the DOOR by editing the
  288.        configuration file.  The name of this file is chosen by
  289.        the SYSOP (usually ending with a .CFG).  This file lets 
  290.        the SYSOP customize the DOOR for his/her BBS.  The format 
  291.        of this file is as follows (each line is straight
  292.        ASCII text ending with CR-LF's):
  293.       
  294.        1.  BBS Name
  295.        2.  Sysop Name
  296.        3.  Door Directory (Example:  "C:\BBS\DOORS\", must end
  297.                  with backslash)
  298.        4.  Door Type 
  299.          1 = DORINFOx.DEF (x= Node number)
  300.          2 = DOOR.SYS
  301.          3 = CALLINFO.BBS
  302.          4 = CHAIN.TXT
  303.          5 = PCBOARD.SYS
  304.        5.  Status Bar foreground color
  305.        6.  Status Bar background color
  306.        7.  Split Screen Chat border foreground color
  307.        8.  Split Screen Chat border background color
  308.        9.  Split Screen Chat highlight foreground color
  309.        10. Split Screen Chat highlight background color
  310.        11. Split Screen Chat text foreground color
  311.        12. Split Screen Chat text background color
  312.        13. Node number (make sure it matches DORINFOx.DEF
  313.            if it is being used)
  314.       
  315.        The SYSOP runs the door by specifying the configuration
  316.        file on the command line, for example:
  317.       
  318.            IDOOR IDOOR.CFG   (runs the demo)
  319.       
  320.        The DOOR can usually be run in LOCAL mode (with no comm
  321.        ports open).  Do it by specifying the word 'LOCAL' on the
  322.        command line:
  323.       
  324.            IDOOR IDOOR.CFG LOCAL
  325.       
  326.       
  327.  
  328.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES   8
  329.       
  330.       INSTA-DOOR ROUTINES
  331.       
  332.        SEE THE 'INITIALIZE' and 'EXITDOOR' routines!  These
  333.        commands MUST BE USED IN ALL DOOR PROGRAMS!
  334.        
  335.        The INSTA-DOOR routines are organized as follows:
  336.         Name:  Name of routine
  337.         Type:  SUB or FUNCTION
  338.         Comp:  Is this command compatible with TEXT, ANSI,
  339.              or AVATAR displays?
  340.         Usage: Shows the correct syntax in using the command
  341.         
  342.        
  343.        Name:  ANSIMusic
  344.        Type:  SUB
  345.        Comp:  ANSI
  346.       
  347.            Lets you play ANSI music in your DOOR program.  It
  348.        is essentially the same as the BASIC PLAY statement, 
  349.        except that the music is sent to the remote location as
  350.        well.  Use the same commands as you would for the PLAY
  351.        statement.  Not all terminal programs allow the use of 
  352.        ANSI music, it is best to let the user turn this feature
  353.        off in your programs, if desired.
  354.       
  355.        Usage:  ANSIMusic musicst$
  356.       
  357.          musicst$ = Musical commands 
  358.             
  359.       
  360.        Name:  Backspace
  361.        Type:  SUB
  362.        Comp:  TEXT, ANSI, AVATAR
  363.       
  364.            Moves the cursor one column to the left, erasing any
  365.        characters at the new cursor position.  If the cursor is
  366.        on column 1, nothing happens (no wrapping).
  367.       
  368.        Usage:  Backspace num%
  369.       
  370.          num% = Number of times to backspace
  371.       
  372.       
  373.  
  374.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES   9
  375.        
  376.        Name:  ChangeColor
  377.        Type:  SUB
  378.        Comp:  ANSI, AVATAR
  379.       
  380.            Changes the foreground and background colors.  
  381.       
  382.        Usage:  ChangeColor fore%, back%
  383.       
  384.          fore% = new foreground color (0-15, defined the
  385.              same as the BASIC COLOR statement)
  386.          back% = new background color (0-7)
  387.       
  388.       
  389.        Name:  ChangePos
  390.        Type:  SUB
  391.        Comp:  ANSI, AVATAR
  392.       
  393.            Changes the cursor position.   Row = 1, column = 1
  394.        represents the upper left corner of the screen, while
  395.        row = 23, column = 80 is the lower right corner.
  396.       
  397.        Usage:  ChangePos rownew%, colnew%
  398.       
  399.          rownew% = Cursor row position 
  400.          colnew% = Cursor column position
  401.       
  402.       
  403.        Name:  CheckTermulation%
  404.        Type:  FUNCTION
  405.        Comp:  TEXT, ANSI, AVATAR
  406.       
  407.            Returns a value depending on the remote terminal in
  408.        use.  0 = No terminal detected (ASCII, TTY, etc.).
  409.        1 = ANSI detected, 2 = AVATAR detected.  This will work 
  410.        ONLY if the remote terminal will respond to a terminal 
  411.        detection code sent by this routine, not all terminals 
  412.        support this capability (although most do).  
  413.       
  414.        Usage:  terminal% = CheckTermulation%
  415.       
  416.        
  417.  
  418.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  10
  419.       
  420.        Name:  ClearLine
  421.        Type:  SUB
  422.        Comp:  ANSI, AVATAR
  423.       
  424.            Clears the row from the current cursor position to the
  425.        end of the line (column 80).
  426.       
  427.        Usage:  ClearLine
  428.       
  429.       
  430.        Name:  ClearWindow
  431.        Type:  SUB
  432.        Comp:  ANSI, AVATAR
  433.       
  434.            Clears the screen (but not the status bar at the 
  435.        bottom).  The cursor is reset to row = 1, column = 1.
  436.        
  437.        Usage:  ClearWindow
  438.       
  439.       
  440.        Name:  CursorDown
  441.        Type:  SUB
  442.        Comp:  ANSI, AVATAR
  443.       
  444.            Moves the cursor one row down.  The movement is non-
  445.        destructive, meaning no characters are erased.  If the 
  446.        cursor is on row 23, then the position is not changed.
  447.       
  448.        Usage:  CursorDown nooftimes%
  449.       
  450.          nooftimes% = Number of times to move the cursor
  451.        
  452.        
  453.        Name:  CursorLeft
  454.        Type:  SUB
  455.        Comp:  ANSI, AVATAR
  456.       
  457.            Moves the cursor one column to the left.  The movement
  458.        is non-destructive, meaning no characters are erased.
  459.        If the cursor is on column 1, then the position is not
  460.        changed.
  461.       
  462.        Usage:  CursorLeft nooftimes%
  463.       
  464.          nooftimes% = Number of times to move the cursor
  465.        
  466.        
  467.  
  468.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  11
  469.        
  470.        Name:  CursorRight
  471.        Type:  SUB
  472.        Comp:  ANSI, AVATAR
  473.       
  474.            Moves the cursor one column to the right.  The 
  475.        movement is non-destructive, meaning no characters are 
  476.        erased.  If the cursor is on column 80, then the position 
  477.        is not changed.
  478.       
  479.        Usage:  CursorRight nooftimes%
  480.       
  481.          nooftimes% = Number of times to move the cursor
  482.        
  483.        
  484.        Name:  CursorUp
  485.        Type:  SUB
  486.        Comp:  ANSI, AVATAR
  487.       
  488.            Moves the cursor one row up.  The movement is non-
  489.        destructive, meaning no characters are erased.  If the 
  490.        cursor is on row 1, then the position is not changed.
  491.       
  492.        Usage:  CursorUp nooftimes%
  493.       
  494.          nooftimes% = Number of times to move the cursor
  495.        
  496.  
  497.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  12
  498.        
  499.        Name:  DialogBox%
  500.        Type:  FUNCTION
  501.        Comp:  ANSI, AVATAR
  502.       
  503.            This is a fully-definable scrollable Dialog Box for use
  504.        with DOOR programs.  You can define the size of the box, 
  505.        the number of choices in the box, the colors of the box, 
  506.        etc.  A list of choices is passed as a STRING array to the
  507.        routine, and the selected choice is returned as an 
  508.        integer.  If the SORT variable is set, the list will be sorted
  509.        in the box.  If the HOTKEY variable is set, you can press
  510.        the first letter of a choice (A-Z only) to select it.  A 
  511.        choice is made with ENTER, but you can escape out of the 
  512.        Dialog Box without choosing anything by pressing ESC.  
  513.        If no choice is made, -1 will be returned.  You can prevent 
  514.        the user from escaping by setting the ESCAPE variable 
  515.        accordingly.  Moving the selection bar can be done with the 
  516.        arrow keys (with most terminals), as well as the numeric 
  517.        keypad 'equivalents', 2, 4, 6 and 8.  Also, HOME('7'), 
  518.        END('1'), PAGE UP('9'), and PAGE DOWN('3') will work.  
  519.        However, the PAGE UP and PAGE DOWN keys will not work for 
  520.        the REMOTE operator, since these keys are usually reserved 
  521.        for uploading and downloading.  With some terminals, 
  522.        extended keys will not work correctly until the keyboard 
  523.        macro file is edited so that the program sends the 
  524.        appropriate codes.  Here's what the codes should be:
  525.       
  526.             ESC[A = ^[[A = Up arrow
  527.             ESC[B = ^[[B = Down arrow
  528.             ESC[C = ^[[C = Right arrow
  529.             ESC[D = ^[[D = Left Arrow
  530.             ESC[H = ^[[H = Home
  531.             ESC[K = ^[[K = End
  532.        
  533.        You should probably make this information known to the user
  534.        of your door.
  535.       
  536.  
  537.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  13
  538.        
  539.        Usage:  ch% = DialogBox% (list$(), row%, col%, boxlength%, 
  540.          boxwidth%, sort$, hotkey$, escape$, bordertype%, 
  541.          topfcolor%, bottomfcolor%, bground%, textcolor%)
  542.       
  543.          list$() = Choices to use in the box
  544.          row% = row location of box (upper-left corner)
  545.          col% = column location of box (upper-left corner)
  546.          boxlength% = number of entries to display at one
  547.                   time in the box
  548.          boxwidth% = width of the box
  549.          sort$ = "Y" if you wish to sort the list, "N" if 
  550.              not
  551.          hotkey$ = "Y" to type first letter of choice, "N"
  552.                if not
  553.          escape$ = "Y" to allow ESC to be used, "N" if not
  554.          bordertype% = 1 for '3D' border, 2 for singleline
  555.                    3 for doubleline
  556.          topfcolor% = color of the top border of the box
  557.          bottomfcolor% = color of the bottom border
  558.          bground% = color of the box background (0-7)
  559.          textcolor% = color of the text in the box
  560.        
  561.  
  562.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  14
  563.        
  564.        Name:  EnterKey
  565.        Type:  SUB
  566.        Comp:  ANSI, AVATAR
  567.       
  568.            Displays a text string at a specified location on the
  569.        screen, and waits for ENTER to be pressed.  Color codes
  570.        can be used with this command (See APPENDIX A).
  571.       
  572.        Usage:  EnterKey st$, fore%, back%, row%, col%
  573.       
  574.          st$ = String to display
  575.          fore% = Foreground color of text
  576.          back% = Background color of text
  577.          row% = Row location of string
  578.          col% = Column location of string
  579.             
  580.       
  581.        Name:  Exist%
  582.        Type:  FUNCTION
  583.        Comp:  TEXT, ANSI, AVATAR
  584.       
  585.            Returns TRUE (-1) if the passed path + filename
  586.        exists, else FALSE (0).      
  587.       
  588.        Usage:  ch% = Exist% (filename$)
  589.       
  590.          filename$ = Filename to test
  591.       
  592.        Name:  ExitDoor
  593.        Type:  SUB
  594.        Comp:  TEXT, ANSI, AVATAR
  595.       
  596.            Use this command before exiting the program.  It
  597.        closes the COM PORT, and re-saves new information to
  598.        the DOOR INFO file.  USE THIS COMMAND BEFORE EXITING THE
  599.        DOOR PROGRAM!
  600.       
  601.        Usage:  ExitDoor
  602.       
  603.        
  604.  
  605.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  15
  606.        
  607.        Name:  GetANSIScreen
  608.        Type:  SUB
  609.        Comp:  ANSI, AVATAR
  610.       
  611.            Saves a portion of the screen to an array, where it
  612.        can be restored with PutANSIScreen.  To calculate the
  613.        size of the integer array needed to use this command, use
  614.        the command SetArraySize.
  615.       
  616.        Usage:  GetANSIScreen (array%(), row1%, col1%, row2%, col2%)
  617.       
  618.          array%() = Integer array used to store screen area
  619.          row1% = Upper row of screen area
  620.          col1% = Leftmost column of screen area
  621.          row2% = Lower row of screen area
  622.          col2% = Rightmost column of screen area
  623.             
  624.       
  625.        Name:  Initialize
  626.        Type:  SUB 
  627.        Comp:  TEXT, ANSI, AVATAR
  628.       
  629.            This command MUST BE THE FIRST COMMAND USED in any
  630.        DOOR program.  The COM routines are initialized, the DOOR
  631.        INFO files are loaded, the DOOR CONFIGURATION FILE is
  632.        loaded, and the ANSI/AVATAR driver is initialized.
  633.       
  634.        Usage:  Initialize
  635.       
  636.        
  637.        Name:  IsAlpha%
  638.        Type:  FUNCTION
  639.        Comp:  TEXT, ANSI, AVATAR
  640.       
  641.            Returns TRUE (-1) if the passed character is a letter 
  642.        of the alphabet,  either upper or lower case, else FALSE 
  643.        (0).
  644.       
  645.        Usage: ch% = IsAlpha% (char$)
  646.            
  647.         char$ = Character to test 
  648.       
  649.  
  650.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  16
  651.        
  652.        Name:  HitKey$
  653.        Type:  FUNCTION
  654.        Comp:  TEXT, ANSI, AVATAR
  655.       
  656.            This command is similar in function to INKEY$, except
  657.        that both remote and local keystrokes are detected.  You
  658.        can determine whether the keystroke was remote or local
  659.        by reading the passed variable, 0 = LOCAL, -1 = REMOTE.
  660.       
  661.        Usage: k$ = Hitkey$ (localorremote%)
  662.       
  663.         localorremote% = -1 if key came from REMOTE
  664.                  0 if key came from LOCAL
  665.       
  666.        Name:  InputData$
  667.        Type:  FUNCTION
  668.        Comp:  ANSI, AVATAR
  669.       
  670.            This command gets input from the user.  The length of
  671.        input may be defined, as well as the colors of the input
  672.        field.  Also, a pre-defined answer may be sent to the
  673.        routine, which the user may choose or not choose to accept.  
  674.        If the MASK variable is set, typing will echo back only the 
  675.        mask'ed character.  If the input length is one, and the 
  676.        HOTKEY variable is set, then it is not necessary to press 
  677.        return after typing.
  678.       
  679.        Usage:  i$ = InputData$ (allowed%, forecolor%, backcolor%, 
  680.          temp$, mask$, hotkey$)
  681.       
  682.          allowed% = input length
  683.          forecolor% = foreground color of input field
  684.          backcolor%  = background color of input field
  685.          temp$ = pre-defined answer (optional)
  686.          mask$ = mask character (optional)
  687.          hotkey$ = "Y" if hotkeys are desired, "N" if not
  688.       
  689.        
  690.  
  691.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  17
  692.        
  693.        Name:  Linefeed
  694.        Type:  SUB
  695.        Comp:  TEXT, ANSI, AVATAR
  696.       
  697.            Sends a specified number of carriage return-linefeeds
  698.        (CR-LF = CHR$(13) + CHR$(10)) to the LOCAL and REMOTE 
  699.        consoles.  
  700.       
  701.        Usage:  Linefeed num%
  702.       
  703.          num% = Number of CR-LF's to send
  704.       
  705.       
  706.        Name:  MakeWindow
  707.        Type:  SUB
  708.        Comp:  ANSI, AVATAR
  709.       
  710.            As you might expect, this sub creates windows.  You
  711.        can specify the colors of the window, the header text, the 
  712.        border type, and the window location.  
  713.       
  714.        Usage:  MakeWindow row1%, col1%, row2%, col2%, topheader$, 
  715.          bottomheader$, bordertype%, topfcolor%, 
  716.          bottomfcolor%, bground%, headercolor%
  717.       
  718.          row1% = Top row of window 
  719.          col1% = Leftmost column of window 
  720.          row2% = Bottom row of window
  721.          col2% = Rightmost column of window
  722.          topheader$ = Text to appear on top border
  723.          bottomheader$ = Text to appear on bottom border
  724.          bordertype% = 1 for '3D' border, 2 for singleline
  725.                    3 for doubleline
  726.          topfcolor% = color of the top border of the window
  727.          bottomfcolor% = color of the bottom border
  728.          bground% = color of the box background (0-7)
  729.          headercolor% = color of the text headers
  730.       
  731.        
  732.  
  733.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  18
  734.        
  735.        Name:  Max%
  736.        Type:  FUNCTION
  737.        Comp:  TEXT, ANSI, AVATAR
  738.       
  739.            Returns the larger of the two integers passed to it.
  740.       
  741.        Usage:  ch% = Max% (first%, second%)
  742.       
  743.          first% = An integer to test
  744.          second% = An integer to test
  745.       
  746.        Name:  Min%
  747.        Type:  FUNCTION
  748.        Comp:  TEXT, ANSI, AVATAR
  749.       
  750.            Returns the smaller of the two integers passed to it.
  751.       
  752.        Usage:  ch% = Min% (first%, second%)
  753.       
  754.          first% = An integer to test
  755.          second% = An integer to test
  756.       
  757.       
  758.        Name:  OpenAppend%
  759.        Type:  FUNCTION
  760.        Comp:  TEXT, ANSI, AVATAR
  761.       
  762.            Opens a file for access (APPEND mode).  Only writing
  763.        to the file is possible.  The file is opened with SHARED 
  764.        access, so that multi-node operation is possible.  It will 
  765.        be necessary to install the DOS SHARE utility if your DOS 
  766.        version if 4.0 or less, if you want multi-node capability.  
  767.        A free file handle is returned.  Normal BASIC commands can 
  768.        be used to do other file operations (GET, PUT, SEEK, CLOSE 
  769.        etc.).  An example of this would be:
  770.          
  771.                GET #filehandle, 1, var$
  772.       
  773.        Usage:  filehandle% = OpenAppend% (filename$)
  774.       
  775.          filename$ = file to open
  776.       
  777.        
  778.  
  779.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  19
  780.        
  781.        Name:  OpenBinary%
  782.        Type:  FUNCTION
  783.        Comp:  TEXT, ANSI, AVATAR
  784.       
  785.            Opens a file for access (BINARY mode).  Reading and
  786.        writing to the file is possible.  The file is opened
  787.        with SHARED access, so that multi-node operation is
  788.        possible.  It will be necessary to install the DOS
  789.        SHARE utility if your DOS version if 4.0 or less, if
  790.        you want multi-node capability.  A free file handle is 
  791.        returned.  Normal BASIC commands can be used to do other 
  792.        file operations (GET, PUT, SEEK, CLOSE etc.).  An example 
  793.        of this would be:
  794.          
  795.               GET #filehandle, 1, var$
  796.       
  797.        Usage:  filehandle% = OpenBinary% (filename$)
  798.       
  799.          filename$ = file to open
  800.       
  801.       
  802.        Name:  OpenInput%
  803.        Type:  FUNCTION
  804.        Comp:  TEXT, ANSI, AVATAR
  805.       
  806.            Opens a file for access (INPUT mode).  Only reading
  807.        from the file is possible.  The file is opened with SHARED 
  808.        access, so that multi-node operation is possible.  It will 
  809.        be necessary to install the DOS SHARE utility if your DOS 
  810.        version if 4.0 or less, if you want multi-node capability.
  811.        A free file handle is returned.  Normal BASIC commands can 
  812.        be used to do other file operations (GET, PUT, SEEK, 
  813.        CLOSE etc.).  An example of this would be:
  814.          
  815.               GET #filehandle, 1, var$
  816.       
  817.        Usage:  filehandle% = OpenInput% (filename$)
  818.       
  819.          filename$ = file to open
  820.        
  821.        
  822.  
  823.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  20
  824.        
  825.        Name:  OpenOutput%
  826.        Type:  FUNCTION
  827.        Comp:  TEXT, ANSI, AVATAR
  828.       
  829.            Opens a file for access (OUTPUT mode).  Only writing
  830.        to the file is possible.  The file is opened with SHARED
  831.        access, so that multi-node operation is possible.  It will 
  832.        be necessary to install the DOS SHARE utility if your DOS 
  833.        version if 4.0 or less, if you want multi-node capability.
  834.        A free file handle is returned.  Normal BASIC commands can 
  835.        be used to do other file operations (GET, PUT, SEEK, 
  836.        CLOSE etc.).  An example of this would be:
  837.          
  838.               GET #filehandle, 1, var$
  839.       
  840.        Usage:  filehandle% = OpenOutput% (filename$)
  841.       
  842.          filename$ = file to open
  843.        
  844.        
  845.        Name:  PutANSIScreen
  846.        Type:  SUB
  847.        Comp:  ANSI, AVATAR
  848.       
  849.            Restores an area of the screen previously saved with
  850.        GetANSIScreen.  The REMOTE screen is restored as well as
  851.        the LOCAL screen.  A 'fast' mode is included that restores
  852.        screens where the background color doesn't change.  
  853.  
  854.        Usage:  PutANSIScreen array%(), row1%, col1%, row2%, 
  855.          col2%, fast$
  856.       
  857.          array%() = Integer array used to store screen area
  858.                 with GetANSIScreen
  859.          row1% = Upper row of screen area
  860.          col1% = Leftmost column of screen area
  861.          row2% = Lower row of screen area
  862.          col2% = Rightmost column of screen area
  863.          fast$ = "Y" for 'fast' mode (no changing background
  864.              colors) or "N" for 'slow' mode
  865.       
  866.        
  867.  
  868.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  21
  869.        
  870.        Name:  RestoreCursor
  871.        Type:  SUB
  872.        Comp:  ANSI, AVATAR
  873.       
  874.            Restores the cursor position saved by SaveCursor.
  875.       
  876.        Usage:  RestoreCursor
  877.       
  878.       
  879.        Name:  Rinstr
  880.        Type:  SUB
  881.        Comp:  TEXT, ANSI, AVATAR
  882.       
  883.            Works similarly to BASIC's INSTR command, except that
  884.        strings are searched starting at the end instead of the
  885.        beginning.  
  886.       
  887.        Usage:  Rinstr search$, char$, found%
  888.       
  889.          search$ = String to search
  890.          char$ = String to look for
  891.          found% = 0 if not found, else position in string
  892.       
  893.       
  894.        Name:  SaveCursor
  895.        Type:  SUB
  896.        Comp:  ANSI, AVATAR
  897.       
  898.            Saves the current position of the cursor.  The cursor
  899.        can be restored using RestoreCursor.
  900.       
  901.        Usage:  SaveCursor
  902.       
  903.       
  904.  
  905.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  22
  906.        
  907.        Name:  SendAnsi%
  908.        Type:  FUNCTION
  909.        Comp:  ANSI
  910.       
  911.            Displays an ANSI file on the screen.  If the specified
  912.        file does not exist, -1 is returned.  
  913.        
  914.        Usage:  ch% = SendAnsi% (filename$)
  915.       
  916.          filename$ = Name of ANSI file to display
  917.                  (no need to specify extension,
  918.                  .ANS is assumed)
  919.       
  920.        Name:  SendAvatar%
  921.        Type:  FUNCTION
  922.        Comp:  AVATAR
  923.       
  924.            Displays an AVATAR file on the screen.  If the 
  925.        specified file does not exist, -1 is returned.  
  926.        
  927.        Usage:  ch% = SendAvatar% (filename$)
  928.       
  929.          filename$ = Name of AVATAR file to display
  930.                  (no need to specify extension,
  931.                  .AVT is assumed)
  932.       
  933.        Name:  SendCode
  934.        Type:  SUB
  935.        Comp:  ANSI, AVATAR
  936.       
  937.            Displays a text string at the current cursor position.
  938.        The string displays on the REMOTE as well as the LOCAL 
  939.        screen.  Color codes can be used with this command 
  940.        (See APPENDIX A).
  941.       
  942.        Usage:  SendCode st$
  943.       
  944.          st$ = String to display
  945.       
  946.       
  947.  
  948.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  23
  949.        
  950.        Name:  SendColorLine
  951.        Type:  SUB
  952.        Comp:  ANSI, AVATAR
  953.       
  954.            Sends a text display to the LOCAL and REMOTE displays.
  955.        Color codes can be used with this command (See APPENDIX
  956.        A).  The color of the text is specified, as well as the
  957.        location of the text on the screen.
  958.       
  959.        Usage:  SendColorLine row%, col%, text$, fore%, back%
  960.       
  961.          row% = Row location of text on the screen
  962.          col% = Column location of text on the screen
  963.          text$ = Text to display
  964.          fore% = Foreground color of text (0-15)
  965.          back% = Background color of text (0-7)
  966.       
  967.       
  968.        Name:  SendLongString
  969.        Type:  SUB
  970.        Comp:  TEXT, ANSI, AVATAR
  971.       
  972.            Displays a string composed of a repeating single char, 
  973.        like "XXXXXXXX" or STRING$(70,32).  This type of string    
  974.        displays much faster in AVATAR than ANSI or TEXT, since
  975.        AVATAR supports a command to display long strings.
  976.       
  977.        Usage:  SendLongString st$
  978.       
  979.          st$ = Long string to display
  980.       
  981.       
  982.        Name:  SendPlainCode
  983.        Type:  SUB
  984.        Comp:  TEXT, ANSI, AVATAR
  985.       
  986.            Displays a text string in a similar manner to 
  987.        SendCode,  but color codes cannot be used.
  988.       
  989.        Usage:  SendPlainCode st$
  990.       
  991.          st$ = String to display
  992.             
  993.       
  994.  
  995.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  24
  996.        
  997.        Name:  SendPlainLine
  998.        Type:  SUB
  999.        Comp:  TEXT, ANSI, AVATAR
  1000.       
  1001.            Displays a text string in a similar manner to
  1002.        SendColorLine, but color codes cannot be used.
  1003.       
  1004.        Usage:  SendPlainLine row%, col%, text$, fore%, back%
  1005.       
  1006.          row% = Row location of text on the screen
  1007.          col% = Column location of text on the screen
  1008.          text$ = Text to display
  1009.          fore% = Foreground color of text (0-15)
  1010.          back% = Background color of text (0-7)
  1011.            
  1012.       
  1013.        Name:  SendText%
  1014.        Type:  FUNCTION
  1015.        Comp:  TEXT, ANSI, AVATAR
  1016.       
  1017.            Displays a normal text file on the screen.  Control
  1018.        codes (CR-LF, Backspace, etc.) will still work, 
  1019.        instead of displaying as an ASCII code.  If the 
  1020.        specified file does not exist, -1 is returned.
  1021.        
  1022.        Usage:  ch% = SendText% (filename$)
  1023.       
  1024.          filename$ = Name of TEXT file to display
  1025.                  (specify extension, since there is
  1026.                  no default for a text file)
  1027.       
  1028.       
  1029.  
  1030.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  25
  1031.        
  1032.        Name:  SetArraySize%
  1033.        Type:  FUNCTION
  1034.        Comp:  TEXT, ANSI, AVATAR
  1035.       
  1036.            This is used to calculate the size of an array to use
  1037.        with GetANSIScreen.  A -1 is returned if an illegal row
  1038.        or column value is passed.
  1039.       
  1040.        Usage:  size% = SetArraySize% (row1%, col1%, row2%, col2%)
  1041.       
  1042.          row1% = Upper row of screen area
  1043.          col1% = Leftmost column of screen area
  1044.          row2% = Lower row of screen area
  1045.          col2% = Rightmost column of screen area
  1046.       
  1047.       
  1048.        Name:  SetBlink
  1049.        Type:  SUB
  1050.        Comp:  ANSI, AVATAR
  1051.       
  1052.            Causes all subsequently displayed text to blink.  
  1053.        Blinking can be turned off by issuing a new ChangeColor
  1054.        command.
  1055.       
  1056.        Usage:  SetBlink
  1057.       
  1058.       
  1059.        Name:  SortSt
  1060.        Type:  SUB
  1061.        Comp:  TEXT, ANSI, AVATAR
  1062.       
  1063.            This sub sorts a string array in ASCII order.
  1064.       
  1065.        Usage:  SortSt array$()
  1066.       
  1067.             array$() = String array to sort
  1068.        
  1069.        
  1070.  
  1071.       INSTA-DOOR v1.0                      INSTA-DOOR ROUTINES  26
  1072.        
  1073.        Name:  Timer2!
  1074.        Type:  FUNCTION
  1075.        Comp:  TEXT, ANSI, AVATAR
  1076.       
  1077.            This is a replacement for the BASIC TIMER function,
  1078.        that seems to function better under certain multitasking
  1079.        environments such as DesqView.  
  1080.       
  1081.        Usage:  t! = Timer2!
  1082.       
  1083.       
  1084.  
  1085.       INSTA-DOOR v1.0                  COMMON SHARED VARIABLES  27
  1086.       
  1087.       INSTA-DOOR COMMON SHARED VARIABLES
  1088.       
  1089.            INSTA-DOOR takes the most commonly used information
  1090.        provided by the BBS (through DOOR INFO files) and assigns
  1091.        them to common shared variables that the programmer can
  1092.        use.  The makers of this library have taken a slightly
  1093.        different approach in the assigning of these common shared
  1094.        variables (compared to other door libraries), in that we 
  1095.        provide them ONLY for the most commonly used pieces of 
  1096.        information.  The programmer will still have access to ALL 
  1097.        information by examining the dinfo$() array, which contains 
  1098.        each line of the DOOR INFO file (DORINFOx.DEF, DOOR.SYS,
  1099.        CALLINFO.BBS, etc.).  This approach was used to keep the 
  1100.        library size small, instead of including >100 common shared 
  1101.        variables.  See APPENDIX B for descriptions of all DOOR 
  1102.        INFO formats supported by this library.
  1103.       
  1104.        BBSName$             Name of the BBS *
  1105.        SysopName$           The Sysop's name (first and last) *
  1106.        port%                Active port (0-4, 0 means LOCAL 
  1107.                   mode) *
  1108.        DisplayType%         Display being used: 0 for TEXT,
  1109.                   1 for ANSI,  2 for AVATAR
  1110.        UserLocation$        City and State of the User's 
  1111.                   residence *
  1112.        Baudrate$            Baudrate of current connection *
  1113.        UserName$            The User's name (first and last) *
  1114.        timeleft%            The time left to the user inside the 
  1115.                   DOOR
  1116.        securitylevel&       The user's security level
  1117.        XPos%, YPos%         The current cursor location on the 
  1118.                   screen (LOCAL and REMOTE)
  1119.        SysopScrollColor%    status bar attribute
  1120.        SysopPromptColor%    split screen chat borders attribute
  1121.        SysopHighColor%      split screen chat hilite attribute
  1122.        SysopTextColor%      split screen chat text attribute
  1123.        Node%                Active node *
  1124.        DoorType%            1 = DORINFOx.DEF, 2 = DOOR.SYS, 
  1125.                   3 = CALLINFO.BBS, 4 = CHAIN.TXT
  1126.                   5 = PCBOARD.SYS 14.x
  1127.        DoorDirectory$       Path of door info file (Example: 
  1128.                   C:\DOOR\DORINFO1.DEF) *
  1129.        dinfo$()             String array containing the EXACT info
  1130.                   from a DOOR INFO file
  1131.       
  1132.        (* = These variables ARE NOT MEANT TO BE ALTERED!  Doing
  1133.         so will cause unpredictable results.)
  1134.                                     
  1135.       
  1136.  
  1137.       INSTA-DOOR v1.0                  APPENDIX A- COLOR CODES  28
  1138.       
  1139.       APPENDIX A - COLOR CODES
  1140.       
  1141.            Certain commands that display text in this library
  1142.        allow changing of colors on the fly using COLOR CODES.
  1143.        A COLOR CODE is a pipe symbol ('|') followed by a letter
  1144.        corresponding to a specific color to change to:
  1145.       
  1146.         b = BLUE, g = GREEN, c = CYAN, r = RED, m = MAGENTA
  1147.         y = BROWN, w = LIGHT GREY, L = DARK GREY,
  1148.         B = LIGHT BLUE, G = LIGHT GREEN, C = LIGHT CYAN,
  1149.         R = LIGHT RED, M = LIGHT MAGENTA, Y = YELLOW,
  1150.         W = WHITE
  1151.       
  1152.        Changing colors with color codes is more convenient then
  1153.        using 'ChangeColor' commands everywhere in a program.
  1154.        However, changing colors in this way does not allow you
  1155.        to change the background color, it remains constant.  One 
  1156.        good reason to support color codes in your DOOR is that it 
  1157.        allows the USER to change colors (of text input, for 
  1158.        instance).  See the DEMO for a example of color codes in 
  1159.        use.
  1160.       
  1161.       
  1162.  
  1163.       INSTA-DOOR v1.0           APPENDIX B - DOOR FILE FORMATS  29
  1164.       
  1165.       APPENDIX B - DOOR FILE FORMATS 
  1166.       
  1167.        Each line of the description corresponds to an array
  1168.        element in dinfo$():
  1169.       
  1170.        DORINFOx.DEF (x = NODE)
  1171.        -----------------------
  1172.        1.  BBS name
  1173.        2.  Sysop's first name
  1174.        3.  Sysop's last name
  1175.        4.  COM port (COM0 if Local)
  1176.        5.  Baud and parameters (e.g. 2400 BAUD,N,8,1)
  1177.        6.  Network type. 
  1178.        7.  Caller's first name (or SYSOP)
  1179.        8.  Caller's last name (blank if SYSOP)
  1180.        9.  Caller's city and state.
  1181.        10. Color mode. 0 = non-color, 1 = color mode.
  1182.        11. Caller's security level.
  1183.        12. Caller's time remaining.
  1184.       
  1185.  
  1186.       INSTA-DOOR v1.0           APPENDIX B - DOOR FILE FORMATS  30
  1187.        
  1188.        DOOR.SYS
  1189.        --------
  1190.        1.  Comm Port - COM0: = LOCAL MODE
  1191.        2.  Baud Rate
  1192.        3.  Parity - 7 or 8
  1193.        4.  Node Number - 1 to 99                    (Default to 1)
  1194.        5.  DTE Rate. Actual BPS rate to use.  
  1195.        6.  Screen Display - Y=On  N=Off             (Default to Y)
  1196.        7.  Printer Toggle - Y=On  N=Off             (Default to Y)
  1197.        8.  Page Bell      - Y=On  N=Off             (Default to Y)
  1198.        9.  Caller Alarm   - Y=On  N=Off             (Default to Y)
  1199.        10. User Full Name (First and Last)
  1200.        11. Calling From (City, State)
  1201.        12. Home Phone
  1202.        13. Work/Data Phone
  1203.        14. Password
  1204.        15. Security Level
  1205.        16. Total Times On the BBS
  1206.        17. Last Date Called
  1207.        18. Seconds Remaining THIS call (for those that particular)
  1208.        19. Minutes Remaining THIS call
  1209.        20. Graphics Mode - GR=Graph, NG=Non-Graph, 7E=7,E Caller
  1210.        21. Page Length
  1211.        22. User Mode - Y = Expert, N = Novice
  1212.        23. Conferences/Forums Registered In  (ABCDEFG)
  1213.        24. Conference Exited To DOOR From    (G)
  1214.        25. User Expiration Date              (mm/dd/yy)
  1215.        26. User File's Record Number
  1216.        27. Default Protocol - X, C, Y, G, I, N, Etc.
  1217.        28. Total Uploads
  1218.        29. Total Downloads
  1219.        30. Daily Download "K" Total
  1220.        31. Daily Download Max. "K" Limit
  1221.        32. Caller's Birthdate
  1222.        33. Path to the MAIN directory (where User File is)
  1223.        34. Path to the GEN directory
  1224.        35. Sysop's Name (name BBS refers to Sysop as) 
  1225.        36. Alias name
  1226.        37. Event time
  1227.        38. If its an error correcting connection (Y/N)
  1228.        39. ANSI supported & caller using NG mode (Y/N)
  1229.        40. Use Record Locking                    (Y/N)
  1230.        41. BBS Default Color (Standard IBM color code, ie, 1-15)
  1231.        42. Time Credits In Minutes (positive/negative)
  1232.        43. Last New Files Scan Date          (mm/dd/yy)
  1233.        44. Time of This Call                 (hh:mm)
  1234.        45. Time of Last Call                 (hh:mm)
  1235.        46. Maximum daily files available
  1236.        47. Files d/led so far today
  1237.        48. Total "K" Bytes Uploaded
  1238.        49. Total "K" Bytes Downloaded
  1239.        50. User Comment
  1240.        51. Total Doors Opened
  1241.        52. Total Messages Left
  1242.  
  1243.       INSTA-DOOR v1.0           APPENDIX B - DOOR FILE FORMATS  31
  1244.        
  1245.        CALLINFO.BBS
  1246.        ------------
  1247.       
  1248.        1.  Caller's full name
  1249.        2.  Caller's baud rate
  1250.        3.  City and state
  1251.        4.  Security level
  1252.        5.  Time remaining in minutes
  1253.        6.  Display (COLOR or MONO)
  1254.        7.  Password
  1255.        8.  Caller's record number
  1256.        9.  Number of minutes caller has been on
  1257.        10. Time caller entered the door
  1258.        11. Time caller logged on to the BBS
  1259.        12. Message areas caller can access (ex. ABCDEF...)
  1260.        13. Number of files downloaded today
  1261.        14. Number of downloads allowed per day
  1262.        15. Number of download Kilobytes allowed this call
  1263.        16. number of download Kilobytes allowed per day
  1264.        17. Home phone number
  1265.        18. Date and time of last call (ex. 01/01/80 07:10)
  1266.        19. Caller's default Help level (NOVICE or EXPERT)
  1267.        20. Default protocol
  1268.        21. Date of last NEW files search
  1269.        22. Total time logged on
  1270.        23. Page length
  1271.        24. Number of last message read
  1272.        25. Total number of uploads
  1273.        26. Total number of downloads
  1274.        27. Databits (7 or 8)
  1275.        28. REMOTE or LOCAL
  1276.        29. Comport (1 or 2)
  1277.        30. Caller's birthdate
  1278.        
  1279.  
  1280.       INSTA-DOOR v1.0           APPENDIX B - DOOR FILE FORMATS  32
  1281.        
  1282.        CHAIN.TXT
  1283.        ---------
  1284.       
  1285.        1.  User number
  1286.        2.  User alias
  1287.        3.  User real name
  1288.        4.  User callsign (HAM radio)
  1289.        5.  User age
  1290.        6.  User sex
  1291.        7.  User gold
  1292.        8.  User last logon date
  1293.        9.  User columns
  1294.        10. User width
  1295.        11. User security level (0-255)
  1296.        12. 1 if Co-SysOp, 0 if not
  1297.        13. 1 if SysOp, 0 if not
  1298.        14. 1 if ANSI, 0 if not
  1299.        15. 1 if at remote, 0 if local console
  1300.        16. User number of seconds left till logoff
  1301.        17. System GFILES directory (gen. txt files)
  1302.        18. System DATA directory 
  1303.        19. System log of the day
  1304.        20. User baud rate
  1305.        21. System com port
  1306.        22. System name
  1307.        23. System SysOp
  1308.        24. Time user logged on/# of secs. from midn.
  1309.        25. User number of seconds on system so far
  1310.        26. User number of uploaded k
  1311.        27. User number of uploads
  1312.        28. User amount of downloaded k
  1313.        29. User number of downloads
  1314.        30. User parity
  1315.       
  1316.  
  1317.       INSTA-DOOR v1.0           APPENDIX B - DOOR FILE FORMATS  33
  1318.        
  1319.        PCBOARD.SYS
  1320.        -----------
  1321.       
  1322.        1.  Sysop's Display ON/OFF
  1323.        2.  Sysop's Printer ON/OFF
  1324.        3.  Sysop's Page Bell ON/OFF
  1325.        4.  Caller Alarm ON/OFF
  1326.        5.  Sysop "Next On" Flag
  1327.        6.  Error Correcting Modem YES/NO
  1328.        7.  Graphics Mode of Caller (7 for MONO - 7 bits, N for
  1329.            MONO - 8 bits, Y for COLOR - 8 bits)
  1330.        8.  Available for Node Chat YES/NO
  1331.        9.  Baud Rate to Open Modem at
  1332.        10. "CONNECT" Baud Rate of Caller
  1333.        11. User's Database Record Number 
  1334.        12. First Name of Caller
  1335.        13. Password of Caller
  1336.        14. Time User Logged On   
  1337.        15. Time Used Today       
  1338.        16. Time User Logged On       (HH:MM:SS)
  1339.        17. Daily Time Limit      
  1340.        18. Daily Download Limit  
  1341.        19. Conference (Area) User Exited From
  1342.        20. Areas User Has "Joined" Today
  1343.        21. Areas User Has Scanned for New Mail
  1344.        22. Area "Bonus" Time     
  1345.        23. Upload Time Credit    
  1346.        24. Language Version Being Used
  1347.        25. Full Name of Caller   (First & Last)
  1348.        26. Session Time Remaining(MKI$ minutes)
  1349.        27. BBS Node Number That Caller is Using
  1350.        28. Scheduled EVENT Time         (HH:MM)
  1351.        29. Is EVENT Time Active?
  1352.        30. Delay EVENT Until User Logs Off?
  1353.        31. "Memorized" Message Number    
  1354.        32. Com Port Number (0, 1, 2, 0 = LOCAL)
  1355.       
  1356.  
  1357.       INSTA-DOOR v1.0   APPENDIX C - SPLIT SCREEN CHAT AND ...  34
  1358.       
  1359.       APPENDIX C - SPLIT SCREEN CHAT AND STATUS BAR 
  1360.       
  1361.         Split Screen Chat has been incorporated into the
  1362.        INSTA-DOOR library, and is automatically incorporated into
  1363.        all DOOR programs.  Split Screen Chat is activated by the
  1364.        SYSOP, who presses F10.  The screen then divides into two
  1365.        windows, one for the LOCAL USER (SYSOP) to chat in, and
  1366.        one for the REMOTE USER.  Pressing CTRL-G will send a BEEP
  1367.        tone to alert the other user.  Pressing CTRL-C will clear
  1368.        the half of the screen the person is using.  After chatting
  1369.        is done, the LOCAL USER (SYSOP) presses ESC to return to
  1370.        normal DOOR operation.
  1371.       
  1372.         The Status Bar appears on the bottom two lines of ALL
  1373.        DOOR programs, and shows the current statistics for the
  1374.        user of the door.  The stats displayed are:
  1375.       
  1376.         -Name of User
  1377.         -Residence of User
  1378.         -TL: Time Left
  1379.         -SL: Security Level
  1380.         -NN: Node Number
  1381.         -BR: Baud Rate
  1382.       
  1383.        The Time Left and the Security Level can be changed LOCALLY
  1384.        by pressing CTRL [UP ARROW] and CTRL [DOWN ARROW] for 
  1385.        the Time Left, and CTRL [LEFT ARROW] and CTRL [RIGHT ARROW]
  1386.        for the security level.
  1387.        
  1388.        Also, FUNCTION KEY ASSIGNMENTS as shown:
  1389.       
  1390.         F7 = Exit to BBS
  1391.         F8 = DOS Shell
  1392.         F9 = Hangup
  1393.         F10 = Split Screen Chat
  1394.       
  1395.       
  1396.